Skip to main content

Implementasi Controller

BaseWebUiController

adalah base yung di gunakan untuk di override nantinya , secara fungsi code ini sangat simple dimana hanya memerlukan fungsi model dan index

<?php

namespace App\Http\Controllers;

use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Http\Client\Request;
use Illuminate\Http\Request as HttpRequest;
use Illuminate\Routing\Controller as BaseController;
use Laravolt\Crud\CrudModel;

abstract class BaseWebUiController extends Controller
{

abstract public function model(): CrudModel;

public function index(HttpRequest $request)
{


return view("web.ui.basictable", [
"baseUrl" => url('/'),
"specPath" => $this->model()->getPath(),
]);
# code...
}
}

Silahkan tambahkan $path pada model yang akan kita buat tampilan webnya

Copntroller Yang extend

seperti biasa untuk controller yang melakukan extend tinggal buat file controller pada folder app/Http/Controllers/Web/Crud/master/

<?php

namespace App\Http\Controllers\Web\Crud\master;

use App\Http\Controllers\BaseWebUiController;
use App\Models\Pegawai;
use Laravolt\Crud\CrudModel;

class PegawaiController extends BaseWebUiController
{

public function model(): CrudModel
{
return new Pegawai();
}




}

Buat View

buatlah view pada folder resources/views/web/ui/basictable.blade.php dengan isi sebagai berikut

@extends('layouts.app')

@section('content')

<div class="mx-auto w-full">
<div>
<div id="base-alurkerja-table"

{{isset($baseUrl) ? 'base-url=' . $baseUrl . '' : ""}}
{{isset($tableName) ? 'table-name=' . $tableName . '' : ""}}
{{isset($specPath) ? 'spec-path=' .$specPath .'' : ""}}
{{isset($moduleName) ? 'module-name=' .$moduleName .'' : ""}} ></div>
</div>
</div>

@endsection

view tersebut akan memanggil component resources/js/components/BasicAlurkerjaTable.jsx yang akan melakukan render component alurkejra

Bagian Rute

pada bagian route web.php tambahkan discovery seperti di bawah ini




Route::group(['as'=>'account.'], function () {

\Spatie\RouteDiscovery\Discovery\Discover::controllers()->in(app_path('Http/Controllers/Web/Crud'));
} );

Membuat Menu

untuk membuat menu silahkan copy / edit bgian resources/views/includes/sidebar.blade.php dan tambahkan

Hasil yang di dapatkan

berikut tampilan yang di harapkman dari workaround di atas

picture 1